Traditional backup systems, such as remote backup systems, typically back up one or more files on a storage device of a client system or the entire storage device to a remote storage device maintained by the backup provider. Backups may be performed manually, on a periodic schedule, or in response to changes to files. In some implementations, only present versions of files are backed up, while in other implementations, one or more prior versions of files are maintained. These latter systems allow a user to recover an older version of a file, effectively undoing any edits to the file.
In many backup systems, a user may elect to either restore an entire storage device to a previously backed-up state, or may select individual files to restore. This may be tedious, particularly if a user wishes to restore a large number of files but not revert the entire storage device to a prior state.
Efforts to address this deficiency and allow a user to restore groups of files have typically required rewriting backup software implementations or building entirely new backup systems that provide the necessary functionality, albeit at reduced storage or bandwidth efficiency. For example, one such implementation is the Time Machine® backup software application by Apple Inc. of Cupertino, Calif. Time Machine® creates periodic backups of files and folders by creating folders for each periodic backup, the folder containing any changed files and hard links to earlier, unchanged files and folders. These links and directory structures are stored on the backup device, either a second local storage device or a network storage device. As a result, data connections between the backup device and the client device must be at high speed, such as serial connections or via a high-speed local area network (LAN), to allow a user to browse through the past backups for files or folders to restore. Furthermore, Time Machine® backups utilize sparse bundle images that may not allow for efficient cross-bundle de-duplication and compression algorithms, increasing the amount of storage and network bandwidth required to back up client data. Additionally, while such images may be encrypted, because the backed up directory and file structure is stored within the image, the encrypted image must be transferred to the client device and decrypted before a user may select which file or files to restore. Accordingly, such implementations may not work with remote backup systems over a wide area network (WAN) such as the Internet.